package com.rise.remi.network;

import com.rise.remi.core.Core_v1;
import com.rise.remi.main.Main;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.ServerSocket;

/**
 *
 * @author remi Сервер, который ждёт подключения клиента. По сути это точно
 * такой же клиент, никакая обработка данных тут не производятся.
 */
public class Server extends Network implements Runnable {

    public void init() {
        try {
            System.out.println("Starting server...");
            serverSocket = new ServerSocket(SERVER_PORT);
            System.out.println("Server started.");
            System.out.println("Note: You cannot move while client not connected.");

            socket = serverSocket.accept();

            Main.getCore().setConnected(true);
            //Main.getCore().getFriend().setPaint(true);
            System.out.println("Connection from: " + socket.getInetAddress());
            in = new DataInputStream(socket.getInputStream());
            out = new DataOutputStream(socket.getOutputStream());

            out.writeUTF(Main.getCore().getPlayer().getName());
            Core_v1.getInstance().getFriend().setName(in.readUTF());
        } catch (Exception ex) {
            System.out.println("Cannot start server.");
        }

    }

    @Override
    public void run() {
        init();
        while (true) {
            try {
                getData();
            } catch (Exception ex) {
            }
        }
    }
}
